package dialect

import "reflect"

// Dialect 实现一些特定的 SQL 语句的转换
var dialectsMap = map[string]Dialect{}

type Dialect interface {
	Convert(typ reflect.Value) string // 将 Go 语言的类型转换为该数据库的数据类型。
	TableExistSQL(tableName string) (string, []interface{}) // 返回某个表是否存在的，参数是表名(table)。
}

// RegisterDialect 注册 Dialect 实例
func RegisterDialect(name string, dialect Dialect) {
	dialectsMap[name] = dialect
}

// GetDialect 获取 Dialect 实例
func GetDialect(name string) (dialect Dialect, ok bool) {
	dialect, ok = dialectsMap[name]
	return
}

